package com.hsp.Demo_03_object;

public class Demo_07 {
    public static void main(String[] args) {
        /*
        2、猴子吃桃子问题：有一堆桃子，猴子第一天吃了其中一半，并再多吃了一个
            以后猴子每天都吃其中一半，然后在多吃一个。
            当第10天时，想再吃时（即还没吃)，发现只有一只桃子了。问：最初共有多少个桃子。

          思路：需要分析吃桃的规律是什么？
            不论怎么样，最后一天是一只桃，那么倒数第二天有几只桃子？
             第10天：  1 只
             第09天:  假设第9天有n个桃，则第10天的桃子为: n/2 - 1  = 1  ==> n =  4只
                       验证  4/2 - 1 = 1? 是的，所以第9天，有4个桃
             第08天： 同样的方式： n/2 - 1 = 4  ==>  n = 10只
             第07天： 同样的方式： n/2 - 1 = 10 ==>  n = 22只
             。。。
             其实由公式就可以看看出   当天的桃 n / 2 - 1 = 昨天的桃
             所以，已知昨天的桃： （昨天的桃 + 1） * 2 = 当天的桃

            所以已知第十天的桃 ： 1
            得第九天的：  （1 + 1） * 2 = 4
            由第9天的得8天的： （ 4 + 1）* 2 = 10

         */
        Demo_07 demo_07 = new Demo_07();
        System.out.println(demo_07.f(1));
    }

    public int f(int n){
        if( n == 10){
            return 1;
        }else{
            return (f(n+1) + 1) * 2;
        }
    }
}
